《区块链技术与应用》北大肖臻老师——课程笔记【13-18】一、BTC-思考1、哈希指针2、区块恋3、分布式共识4、比特币的稀缺性5、量子计算二、ETH-以太坊概述1、以太坊2、智能合约三、ETH-账户1、ETH账户2、Replayattack重放攻击3、问题四、ETH-状态树五、ETH-交易树和收据树六、ETH-GHOST协议提示:以下内容只是个人在学习过程中记录的笔记,图片均是肖老师课程的截图,可供参考。如有错误或不足之处,请大家指正。一、BTC-思考1、哈希指针指针保存的本地内存的地址,只是在本地计算机才有意义,发送到其他的计算机上没有意义,在发布区块时,哈希指针是如何通过网络进行传输?哈
文章目录0.导言1.什么是CAS2.保证原子操作2.1CAS实现自旋锁2.2AtomicBoolean中的CAS2.3CAS使用场景3.锁的分类3.1乐观锁3.2悲观锁4.CAS存在的问题4.1ABA问题4.2循环时间长开销大4.3只能保证一个共享变量的原子操作0.导言背景:我们都知道,在java语⾔之前,并发就已经⼴泛存在并在服务器领域得到了⼤量的应⽤。所以硬件⼚商⽼早就在芯⽚中加⼊了⼤量支持并发操作的原语,从⽽在硬件层⾯提升效率。如在intel的CPU中,使⽤cmpxchg指令。在Java发展初期,java语⾔是不能够利⽤硬件提供的这些便利来提升系统的性能的。⽽随着java不断的发展,Ja
基础概念:前中后序遍历1/\23/\\456层次遍历顺序:[123456]前序遍历顺序:[124536]中序遍历顺序:[425136]后序遍历顺序:[452631]层次遍历使用BFS实现,利用的就是BFS一层一层遍历的特性;而前序、中序、后序遍历利用了DFS实现。前序、中序、后序遍只是在对节点访问的顺序有一点不同,其它都相同。①前序voiddfs(TreeNoderoot){visit(root);dfs(root.left);dfs(root.right);}②中序voiddfs(TreeNoderoot){dfs(root.left);visit(root);dfs(root.right)
目录1、需求: 2、分析:3、公网ip配置:4、公网OSPF实现互通: 5、启动MPLS–LDP:6、配置MPLS—VPN 1.PE与PE间建立MP-BPG邻居关系: 2.配置A公司MPLS—VPN(动态): 3.A公司CE端与PE端交互路由:4.配置B公司MPLS—VPN(静态): 5.B公司CE端与PE端交互路由: 7、NAT:8、测试:1、需求: 2、分析: 根据图中要求进行MPLS-VPN配置; A公司通过动态路由进行内部通信;B公司通过静态路由通信,B1和B2通过写缺省路由进入公网访问彼此。 R7可以访问公网用NAT3、公网ip配置:[r2]inl0[r2-Loop
一、SD卡简介1、什么是SD卡?SD卡(SecureDigitalMemoryCard)即:安全数码卡。它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛的用于便携装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝以及美国SanDiak公司于1999年8月共同开发研制。SD卡容量分类,分为三类:SD卡、SDHC卡、SDXC卡。如下表所示: SD卡外形和接口图如下图所示:SD卡由9个引脚与外部通信,支持SPI和SDIO两种模式,不同模式下,SD卡引脚功能描述如下表所示: SD模式:第一个脚DAT3(也就是第四根数据线),第二个
前言凡心所向,素履所往;生如逆旅,一苇以航。一、ESP8266介绍ESP8266是一款超低功耗的UART-WiFi透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi无线网络上,进行互联网或局域网通信,实现联网功能。硬件接口丰富,可支持UART,IIC,PWM,GPIO,ADC等,适用于各种物联网应用场合。如下我们使用的USART串口接口的ESP8266模块:二、接线与引脚说明开发板:STM32F103RBT6(正点原子的NANO开发板)WiFi模块:ESP8266MOD型号(如上图所示)接线图:STM32开发板ESP8266模
我用Golang编写了一段代码来测试GoogleCloudSQL:packagemainimport("database/sql""flag""fmt"_"github.com/go-sql-driver/mysql")varaddr=flag.String("db","","Thedatabaseaddress")funcmain(){flag.Parse()db,err:=sql.Open("mysql",*addr)iferr!=nil{fmt.Println("mysqlopenfailed:",err)return}deferdb.Close()err=db.Ping()if
我想打开jpeg图像文件,对其进行编码,更改一些像素颜色,然后按原样保存。我想做这样的事情imgfile,err:=os.Open("unchanged.jpeg")deferimgfile.Close()iferr!=nil{fmt.Println(err.Error())}img,err:=jpeg.Decode(imgfile)iferr!=nil{fmt.Println(err.Error())}img.Set(0,0,color.RGBA{85,165,34,1})img.Set(1,0,....)outFile,_:=os.Create("changed.jpeg")def
目录概述具体步骤概述默认情况下,Docker会创建一个名为docker0的网桥。Docker主机和Docker容器在该网桥上都有一个IP地址。在这个模式下,docker容器与主机的网络是不互通的,docker及docker下的容器之间有个地址相同(同ip段),外网访问只能通过端口映射。如果docker容器里的nginx需要连本机mysql,那么可以将mysql的3306端口打开,通过外网去连接。具体步骤(1).切换到root账号,否则保存文件时会提示文件处于只读状态。在主机命令行里运行命令:suroot(2).修改mysql配置文件,修改配置为允许远程连接,并开放3306端口。在主机命令行里运
文章目录前言1、前期准备2、PC端环境配置2.1创建虚拟环境2.2依赖库安装2.3其他库安装3、虚拟端环境配置3.1安装Ubuntu系统3.2下载并安装anaconda3.3创建py36虚拟环境4、虚拟端安装RKNN-Toolkit4.1下载RKNN-Toolkit4.2安装RKNN-Toolkit4.3验证环境是否正确前言 RKNN支持许多框架训练的模型,但由于本人目前主要使用pytorch框架来训练模型,因此该部署教程是以Pytorch模型部署过程为例进行说明,后面再继续补充ONNX模型部署过程。1、前期准备 首先根据下表,确定RKNNToolkit以及Pytorch的版本。 由于P